package com.fairytask.engine.components
{
	import com.fairytask.engine.components.button.Button;
	import com.fairytask.engine.components.group.ViewGroup;
	import com.fairytask.engine.components.text.Input;
	
	import flash.events.MouseEvent;

	/**
	 * 分页显示 
	 * @author zhuy
	 * 
	 */	
	public class PageShow extends BaseComponent
	{
		private var _curIndex		:	int = -1;
		private var _curPageNum	:	int = 1;
		private var _totalPageNum	:	int = 1;
		private var _itemsNum		:	int = 0;
		private var _showViewGroup	:	ViewGroup;
		private var _lastBtn		:	Button;
		private var _nextBtn		:	Button;
		private var _pageInput		:	Input;
		private var _row			:	uint;
		private var _col			:	uint;
		private var _nextBtnX		:   Number;
		/**
		 * 
		 * @param row 		项行数
		 * @param col 		项列数
		 * @param btnRes 	按钮资源
		 * @param btnW 		按钮宽
		 * @param btnH 		按钮高
		 * @param nextBtnX 	"下一页"按钮x坐标
		 * @param itemsNum  想总数目
		 * @param inputRes  输入框资源
		 * @param inputW    输入框宽
		 * @param inputH	输入框高	
		 * @param inputX	输入框x坐标
		 * @param inputY	输入框y坐标
		 * 
		 */		
		public function PageShow(row:uint,col:uint,btnRes:String,btnW:uint,btnH:uint,nextBtnX:Number,itemsNum:uint=0,inputRes:String=null,inputW:uint=45,inputH:uint=17,inputX:Number=0,inputY:Number=0)
		{
//			super();
			_row = row;
			_col = col;
			_lastBtn = new Button("上一页",btnW,btnH,btnRes);
			_nextBtn = new Button("下一页",btnW,btnH,btnRes);
			_nextBtn.x = nextBtnX;
			if(itemsNum!=0)
			{
				_itemsNum = itemsNum;
			}
			if(inputRes)
			{
				_pageInput = new Input(inputW,inputH,inputRes);
				_pageInput.enabled = false;
				_pageInput.x = inputX;
				_pageInput.y = inputY;
				this.addChild(_pageInput);
			}
			this.addChild(_lastBtn);
			this.addChild(_nextBtn);
			initEvent();
//			_showViewGroup = new ViewGroup(row,col,baseItemRes,pw,ph,backSkin);
//			initShow();
		}
		
		public function set itemsNum(val:uint):void
		{
			_totalPageNum = val/(_row * _col) + 1;
			_lastBtn.enabled = false;
			if(_totalPageNum==1)
			{
				_nextBtn.enabled = false;
			}
			initEvent();
			if(_pageInput)
			{
				_pageInput.htmlStr = _curPageNum.toString() + "/" + _totalPageNum.toString();
			}
		}
		
		private function initEvent():void
		{
			_lastBtn.addEventListener(MouseEvent.CLICK,onLast);
			_nextBtn.addEventListener(MouseEvent.CLICK,onNext);
		}
		
		private function onLast(evt:MouseEvent):void
		{
			_curPageNum--;
			if(_curPageNum<1)
			{
				_curPageNum = 1;
				_lastBtn.enabled = false;
			}
			if(_pageInput)
			{
				_pageInput.htmlStr = _curPageNum.toString() + "/" + _totalPageNum.toString();
			}
		}
		
		private function onNext(evt:MouseEvent):void
		{
			_curPageNum++;
			if(_curPageNum>_totalPageNum)
			{
				_curPageNum = _totalPageNum;
				_nextBtn.enabled = false;
			}
			if(_pageInput)
			{
				_pageInput.htmlStr = _curPageNum.toString() + "/" + _totalPageNum.toString();
			}
		}
		
//		public function initShow()
//		{
//			curPageShow();
//		}
		
//		public function lastPageShow()
//		{
//			_curPageNum--;
////			if(_curPageNum>=0)
////			{
////				curPageShow();
////			}
//		}
		
//		public function nextPageShow()
//		{
//			_curPageNum++;
////			if(_curPageNum<=_pageTotalNum)
////			{
////				curPageShow();
////			}
//		}
		
//		private function curPageShow():void
//		{
//			_showViewGroup.page = _curPageNum;
//		}
		
//		public function addItem(item:BaseItem):void
//		{
//			_curIndex++;
//			_showViewGroup.getItemByIndex(_curIndex).addItem(item);
//		}
		
//		public function removeItem(index:int):void
//		{
//			_showViewGroup.getItemByIndex(index).clear();
//		}
//		
//		public function get curPageNum():int
//		{
//			return _curPageNum;
//		}
//		
//		public function get pageTotalNum():int
//		{
//			return _pageTotalNum;
//		}
		
//		public function addItemEvent(type:String,listener:Function):void
//		{
//			_showViewGroup.addItemsEvent(type,listener);
//		}
	}
}